package cn.security.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;


//// 开启 Security ，
// 但是在 org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration 中的
// org.springframework.boot.autoconfigure.security.servlet.WebSecurityEnablerConfiguration 类上
// 已经标注 @EnableWebSecurity

 //@EnableWebSecurity   // 此处不需要该注解进行开启
@Configuration
public class MyWebSecurityConfig extends WebSecurityConfigurerAdapter {

     /**
      * 申明 {bcrypt} 对应的 BCryptPasswordEncoder 密码编码器 bean 对象；
      * 在进行 cn.security.service.UserServiceImpl#loadUserByUsername(java.lang.String) 时，注入使用
      * @return
      */
     @Bean
     public PasswordEncoder passwordEncoder(){
         return new BCryptPasswordEncoder();
     }
}
